package org.liuyuantao.data.basic;

/**
 * 在这里JVM里面有两个存储区,一个是暂存区（以下称为堆栈）,另一个是变量区。
 * j=j++是先将j的值（0,原始值）存入堆栈中（对应图中分配一块新的内存空间）,
 * 然后对自变量区中j自加1,这时j的值确实是1,但随后将堆栈中的值赋给变量区的j,所以最后j=0;
 */
public class Increment {

    public static void main(String[] args) {
        Increment incre = new Increment();
        incre.incre1();
        incre.incre2();
    }

    public void incre1() {
        Integer j = 0;
        int n = 0;
        for (int i = 0; i < 10; i++) {
            //System.out.println(i);
            j += 1;// 注意j
            n = ++n;
        }
        System.out.print("n:=" + n);  // 100
        System.out.println("j:=" + j);  // 0
    }

    public void incre2() {
        Integer j = 0;
        int n = 0;
        for (int i = 0; i < 10; i++) {
            //System.out.println(i);
            j = j++;// 注意j
            n = ++n;
        }
        System.out.print("n:=" + n);  // 100
        System.out.println("j:=" + j);  // 0
    }
}  